"""author: zsw
   data: 2021/12/8
   project: aaaaaaa我爱学习
"""
# 利用map批量检测用户名是否符合规范=> username符合规范, username不符合规范
# 只能包含数据、字母、下划线，不以数字开头，长度在6-18之间
# filter把合法的用户名显示出来
# import re
# usernames=['aczcjfjj125_','123456']
# def z(s):
#     if re.findall(r"^[a-zA-Z_]\w{5,17}$",s):
#         return f"{s}符合规范"
#     else:
#         return f"{s}不符合规范"
# print(list(map(z,usernames)))
# print(list(filter(lambda x:re.findall(r"^[a-zA-Z_]\w{5,17}$",x),usernames)))

#匿名函数+reduce实现 1*2*3*...*n
# from functools import reduce
# print(reduce(lambda x,y:x*y,range(1,5)))

#filter函数:找出[1-100]能被3整除的数
# print(list(filter(lambda x:x%3==0,range(1,100))))

#map函数:求list[1-10]各项的平方
# print(list(map(lambda x:x*x,[1,2,3,4,5,6,7,8,9,10])))

#将列表[1,4,5,9] 转换成 '1459'的字符串
# from functools import reduce
# print(reduce(lambda x,y:x*10+y,[1,4,5,9]))

#有以下列表：list1=[7, -8, 5, 4, 0, -2, -5]
#正数在前负数在后  整数从小到大  负数从大到小
# list1=sorted([7, -8, 5, 4, 0, -2, -5])[4:]
# list2=sorted([7, -8, 5, 4, 0, -2, -5])[0:3][::-1]
# print(list1+[0]+list2)

#这是一个字符串排序，排序规则：小写<大写<奇数<偶数
# s = 'asdf234GDSdsf23' #排序:小写-大写-奇数-偶数
# 原理：先比较元组的第一个值，FALSE
# from functools import reduce
# list1=list(filter(lambda x:'a'<=x<='z' ,'asdf234GDSdsf23' ))
# list2=list(filter(lambda x:'A'<=x<='Z' ,'asdf234GDSdsf23' ))
# list3=list(filter(lambda x:x.isdigit(),'asdf234GDSdsf23' ))
# list4=list(filter(lambda x:int(x)%2==1,list3))
# list5=list(filter(lambda x:int(x)%2==0,list3))
# print(''.join(list1+list2+list4+list5))